﻿using LibNiconico.NiconicoApi.Extentions;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace LibNiconico.NiconicoApi.Internal
{
    /// <summary>
    /// ニコニコチャットコメント送信用情報
    /// </summary>
    public sealed class NicoSubmitChatInfo
    {

        /// <summary>
        /// 送信用チケット
        /// </summary>
        public string Ticket;

        /// <summary>
        /// 最後に受信したコメントNo
        /// </summary>
        public int LastCommentNo;

        /// <summary>
        /// コメント送信用のロケール
        /// </summary>
        public string Locale;

        /// <summary>
        /// コメント送信用の言語
        /// </summary>
        public string Langage;

        /// <summary>
        /// コメントを送信するスレッド番号
        /// </summary>
        public string Thread;

        /// <summary>
        /// 最後に送信した際のブロックNo
        /// </summary>
        public int LastBlockNo;

        /// <summary>
        /// 最後に送信した際に使用されたポストキー
        /// </summary>
        public string LastPostKey;

        /// <summary>
        /// 送信に使用するユーザID
        /// </summary>
        public string UserId;

        /// <summary>
        /// 生放送経過時間
        /// </summary>
        public TimeSpan LiveTime;

        /// <summary>
        /// 送信に使用するユーザ属性
        /// </summary>
        public int Premium;

        /// <summary>
        /// 放送
        /// </summary>
        public DateTime OpenTime;

        /// <summary>
        /// 放送終了予定時間
        /// </summary>
        public DateTime EndTime;


        /// <summary>
        /// WayBack用最小受信日時
        /// </summary>
        public DateTime MinimumReceiveDateTime;

        /// <summary>
        /// 主コメント送信用放送主トークン
        /// </summary>
        public string OwnerToken;

        /// <summary>
        /// 最終受信日時
        /// </summary>
        public DateTime LastReceiveLocalTime;

        /// <summary>
        /// コンストラクタ
        /// </summary>
        public NicoSubmitChatInfo()
        {
            Thread = "";
            Ticket = "";
            Locale = "";
            Langage = "";
            LastCommentNo = 0;
            LastBlockNo = 0;
            UserId = "";
            Premium = 0;
            LiveTime = default(TimeSpan);
            MinimumReceiveDateTime = DateTimeExtention.Epoch;
            LastPostKey = "";
            OwnerToken = "";
            LastReceiveLocalTime = DateTime.Now;
        }
    }
}
